﻿using System.Collections.Generic;
using System.ServiceModel;

using Budgetsch.Web.EntityModel;

namespace Budgetsch.Web.Services
{
    using User = Budgetsch.Web.EntityModel.User;

    [ServiceContract]
    public interface IWP7DataService
    {
        [OperationContract]
        IEnumerable<Income> GetIncomes();

        [OperationContract]
        IEnumerable<Cost> GetCosts();

        [OperationContract]
        IEnumerable<Saving> GetSavings();

        [OperationContract]
        void AddIncome(Income income);

        [OperationContract]
        void AddCost(Cost cost);

        [OperationContract]
        void AddSaving(Saving saving);

        [OperationContract]
        bool SetPublicity(bool publicity);

        [OperationContract]
        IncomeComment AddIncomeComment(string message,int itemID);

        [OperationContract]
        CostComment AddCostComment(string message, int itemID);

        [OperationContract]
        SavingComment AddSavingComment(string message, int itemID);

        [OperationContract]
        IEnumerable<User> GetPublicUsers();

        [OperationContract]
        IEnumerable<Income> GetUserPublicIncomes(string userName);

        [OperationContract]
        IEnumerable<Cost> GetUserPublicCosts(string userName);

        [OperationContract]
        IEnumerable<Saving> GetUserPublicSavings(string userName);

        [OperationContract]
        bool IsSharedUser();
    }
}
